package org.mokusakura.persistence.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.mokusakura.domain.Order;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;

@Mapper
public interface OrderMapper {
    /**
     * @param orderId - 要查询的orderId
     * @return 返回值中的lineItems为null
     */
    Order getOrderByOrderId(Long orderId);

    /**
     * @param userId - 要查询的userId
     * @return 返回值中的Order的LineItem为null
     */
    List<Order> getOrderListByUserId(Integer userId);

    /**
     * <p>插入到Order表 </p>
     *
     * @param order 插入的order
     * @return 1或0
     */
    Integer insertOrder(Order order);


    /**
     * <p>这个是用来干什么的？ </p>
     *
     * @param order-order
     * @return 1或0
     */
    Integer insertOrderStatus(Order order);

    Integer updateOrderStatus(Order order);

    /**
     * <p>
     * 该方法仅搜索Order Id。此方法专门为orderList页面定制。因为后天就要检查了，order list页面慢的一批
     * 不赶紧搞搞不完了。返回的Map中，有三个元素，键名分别是orderId,orderDate和totalPrice。主要是为了适配jsp页面
     * 现在不使用了
     * </p>
     *
     * @param email 用于查询的email
     * @return 返回该email所拥有的所有order id。如果没有order，则为空List
     * @throws SQLException 通常是因为用户名或密码错了，也有可能是数据库挂了
     * @deprecated 不建议使用
     */
    @Deprecated
    List<Map<String, String>> listOrderForOrderListPageByEmail(String email) throws SQLException;


}
